<?xml version="1.0" encoding="UTF-8"?>

<!--#################################################################################
  
  Bereinige die Mediathek: Gebe ein AlbumUUID und CompilationUUID Tag beim Track dazu
  
  Warum XSLT: Es handelt sich hierbei um die Transformation einer einzelnen Datei,
  dafuer ist XSLT besser geeignet.
  
  ##################################################################################-->

<xsl:transform xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:uuid="java:java.util.UUID" version="2.0">

  <xsl:output method="xml" indent="yes"/>

  <xsl:template match="Mediathek">
    <xsl:element name="Mediathek">
      <xsl:copy-of select="MetaData"/>
      
      <xsl:element name="TrackArea">
        <xsl:for-each select="TrackArea/Track">
          <xsl:element name="Track">
            <xsl:variable name="albumName"><xsl:value-of select="./Album" /></xsl:variable>
            <xsl:choose>
              <xsl:when test="exists(Album) and (exists(Compilation) and Compilation='true')">
                <xsl:element name="CompilationUUID">
                  <xsl:value-of select="/Mediathek/Compilations/Compilation[CompilationName=$albumName]/CompilationUUID" />
                </xsl:element>
                <xsl:copy-of select="*"/>
              </xsl:when>
              <xsl:when test="exists(Album) and (not(exists(Compilation)) or Compilation='false')">
                <xsl:element name="AlbumUUID">
                  <xsl:value-of select="/Mediathek/Albums/Album[AlbumName=$albumName]/AlbumUUID" />
                </xsl:element>
                <xsl:copy-of select="*"/>
              </xsl:when>
              <xsl:otherwise>
                <xsl:copy-of select="*" />
              </xsl:otherwise>
            </xsl:choose>
          </xsl:element>
        </xsl:for-each>
      </xsl:element>
      
      <xsl:copy-of select="Compilations"/>
      <xsl:copy-of select="Albums"/>
      <xsl:copy-of select="Playlists"/>
    </xsl:element>
  </xsl:template>

</xsl:transform>
